<html>
<head><meta charset="utf-8"><title>impl Trait = existential? · general · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/index.html">general</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html">impl Trait = existential?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="166704979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166704979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166704979">(May 28 2019 at 11:07)</a>:</h4>
<p>claim: IIRC impl Trait is always an existential type, but in argument position it is isomorphic to a similar universally quantified type</p>
<p>problem:  when you start nesting things, like <code>fn foo(fn(impl Trait) -&gt; impl Trait)</code>, the "proper" thing you'd expect is that the existentials are like <code>fn foo(fn(exists T: Trait, T) -&gt; (exists T: Trait, T))</code>.</p>
<p>@Centril said this would be isomorphic to <code>exists A: Trait. forall B: Trait. fn foo(fn(A) -&gt; B)</code> but I don't see how, this is totally different? In my function above, the closure can be called with any <code>T</code>!</p>



<a name="166705267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705267">(May 28 2019 at 11:11)</a>:</h4>
<p><span class="user-mention" data-user-id="120791">@RalfJ</span>  if you have <code>fn foo(fn(exists T: Trait, T) -&gt; (exists T: Trait, T))</code> then the return type seems to me like <code>dyn Trait</code></p>



<a name="166705322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705322">(May 28 2019 at 11:12)</a>:</h4>
<p>i.e. it can vary dynamically</p>



<a name="166705347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705347">(May 28 2019 at 11:12)</a>:</h4>
<p>when you write something like <code>fn foo() -&gt; impl Alpha</code>, the scoping is <code>exists&lt;A: Alpha&gt; fn foo() -&gt; A</code></p>



<a name="166705381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705381">(May 28 2019 at 11:13)</a>:</h4>
<p>that's isomorphic to <code>fn foo() -&gt; exists A: Alpha, A</code>.</p>



<a name="166705396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705396">(May 28 2019 at 11:13)</a>:</h4>
<p>well okay here this relies on <code>foo</code> having no arguments, in general it'd rely on a restriction for types not to depend on values</p>



<a name="166705455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705455">(May 28 2019 at 11:14)</a>:</h4>
<p>but either way I don't see how the thing you suggested has anything to do with the type I wrote^^</p>



<a name="166705467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705467">(May 28 2019 at 11:14)</a>:</h4>
<p>what does your comma notation mean here? is it a sigma type?</p>



<a name="166705476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705476">(May 28 2019 at 11:14)</a>:</h4>
<p>yeah this is basically Coq syntax</p>



<a name="166705481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705481">(May 28 2019 at 11:15)</a>:</h4>
<p>except I am ignoring propositional existential vs sigma^^</p>



<a name="166705492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705492">(May 28 2019 at 11:15)</a>:</h4>
<p>(Coq syntax is so weird ^^)</p>



<a name="166705504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705504">(May 28 2019 at 11:15)</a>:</h4>
<p>(your syntax is even weirder :P )</p>



<a name="166705519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705519">(May 28 2019 at 11:15)</a>:</h4>
<p><code>,</code> just terminates the list of binders. nothing weird. ;)</p>



<a name="166705534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705534">(May 28 2019 at 11:15)</a>:</h4>
<p>(Idris does <code>a: B *** P(a)</code> -- very nice!)</p>



<a name="166705537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705537">(May 28 2019 at 11:15)</a>:</h4>
<p>wtf</p>



<a name="166705589"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705589" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705589">(May 28 2019 at 11:16)</a>:</h4>
<p>looks like separating conjunction on steroids or so^^</p>



<a name="166705611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705611">(May 28 2019 at 11:16)</a>:</h4>
<p>or maybe it's the good ol' "<code>**</code> is <code>pow</code>", so this is actually an exponential, as in a product type? :P</p>



<a name="166705620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705620">(May 28 2019 at 11:16)</a>:</h4>
<p>it's 3 *s</p>



<a name="166705635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705635">(May 28 2019 at 11:17)</a>:</h4>
<p>even more powerful than <code>pow</code> then^^</p>



<a name="166705641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705641">(May 28 2019 at 11:17)</a>:</h4>
<p>but I have no idea; you'd have to ask Brady</p>



<a name="166705652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705652">(May 28 2019 at 11:17)</a>:</h4>
<p>not sure how that's nice, has nothing to do with any syntax I've ever seen. But also <em>shrug</em> whatever.</p>



<a name="166705673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705673">(May 28 2019 at 11:17)</a>:</h4>
<p>anyway, in <code>exists A: Trait. forall B: Trait. fn foo(fn(A) -&gt; B)</code>, <code>foo</code> can call the closure with only one type, namely the witness it took for <code>A</code>. In the one I wrote, interpreted in type theory, you can call the closure with a different argument type each time.</p>



<a name="166705683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705683">(May 28 2019 at 11:17)</a>:</h4>
<p>well <code>fn foo() -&gt; exists A: Alpha, A</code> seems the same as <code>fn foo() -&gt; dyn Alpha</code></p>



<a name="166705741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705741">(May 28 2019 at 11:18)</a>:</h4>
<p>that's like saying <code>fn foo() -&gt; impl Alpha</code> is isomorphic to <code>fn foo() -&gt; dyn Alpha</code></p>



<a name="166705751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705751">(May 28 2019 at 11:18)</a>:</h4>
<p>the difference exists only because we have this dynamic-static dichotomy</p>



<a name="166705767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705767">(May 28 2019 at 11:18)</a>:</h4>
<p>(on the level of abstraction that I am thinking at right now)</p>



<a name="166705774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705774">(May 28 2019 at 11:18)</a>:</h4>
<p>I think overall it's best to think of <code>impl Trait</code> in terms of type inference + opacity</p>



<a name="166705799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705799">(May 28 2019 at 11:19)</a>:</h4>
<p>you started mentioning type theory in the other thread, you dont get to change goalposts now^^</p>



<a name="166705901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705901">(May 28 2019 at 11:20)</a>:</h4>
<p>I was just making a remark where <code>impl Trait</code> is not an existential</p>



<a name="166705902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705902">(May 28 2019 at 11:20)</a>:</h4>
<p>I didn't say which type theory :P</p>



<a name="166705919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705919">(May 28 2019 at 11:21)</a>:</h4>
<p>but we don't actually accept <code>impl Trait</code> in nested fn types or traits so I guess this discussion is moot :)</p>



<a name="166705936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705936">(May 28 2019 at 11:21)</a>:</h4>
<p>it seems like everywhere that we accept <code>impl Trait</code>, it <em>is</em> (isomorphic to) an existential. So beauty is restored. :)</p>



<a name="166705941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166705941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166705941">(May 28 2019 at 11:21)</a>:</h4>
<p>when I think of <code>fn foo() -&gt; impl Bar</code> in terms of existentials, the existential binder is at the module level</p>



<a name="166706008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166706008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166706008">(May 28 2019 at 11:22)</a>:</h4>
<p>hm. interesting. not how I think about them.^^</p>



<a name="166706072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166706072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166706072">(May 28 2019 at 11:23)</a>:</h4>
<p>if we do have something akin to <code>fn foo(_: impl Fn() -&gt; impl Bar)</code> it does get tricky tho... if we put the existential for <code>Bar</code> at the module level it is very surprising</p>



<a name="166706145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166706145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166706145">(May 28 2019 at 11:24)</a>:</h4>
<p>instead: <code>fn foo(_: exists&lt;F: Fn() -&gt; impl Bar&gt; F)</code> -- but we haven't made much progress</p>



<a name="166706200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166706200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166706200">(May 28 2019 at 11:25)</a>:</h4>
<p>presumably, what the user is trying to say is: <code>fn foo(_: exists&lt;F: Fn&lt;(), Output: Bar&gt;&gt; F)</code></p>



<a name="166706281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/impl%20Trait%20%3D%20existential%3F/near/166706281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/impl.20Trait.20.3D.20existential.3F.html#166706281">(May 28 2019 at 11:26)</a>:</h4>
<p>which is representable. but I'm also not sure if that's what it should mean</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>